#include <iostream>
#include <cassert>
#include <vector>
#include <algorithm>
#include <sstream>
#include <list>
#include <stack>
#include <queue>
#include <map>
using namespace std;

struct ListNode {
     int val;
     ListNode *next;
     ListNode() : val(0), next(nullptr) {}
     ListNode(int x) : val(x), next(nullptr) {}
     ListNode(int x, ListNode *next) : val(x), next(next) {}
};
//打印链表
void displayList(ListNode *p){
    while( p ){
        cout<< p->val ;
        p = p->next;
        if(p) cout<<"->";
    }
    cout<<endl;
}


void Binarycout(uint32_t n) 
{ 
    for (int i=31;i>=0;i--) 
    { 
        cout<<((n>>i)&1); 
    } 
    cout<<endl; 
} 
//解决方案类
class Solution {
public:
uint32_t reverseBits(uint32_t n) {
        uint32_t ans=0;
        char i=32;
        while(i--) ans<<=1, ans+=n&1, n>>=1;
        return ans;
    }
};
int main(){
    Solution sp;
    uint32_t a = 0b00000010100101000001111010011100;
    uint32_t c = sp.reverseBits(a);
    Binarycout(c);
    return 0;
}